package com.springboot.service.impl;

import com.springboot.service.FileUploadService;
import com.springboot.util.FileUtil;
import com.springboot.util.GetServerRealPathUnit;
import org.springframework.stereotype.Service;
import org.springframework.util.ClassUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
@Service
public class FileUploadServiceImpl implements FileUploadService {
    @Override
    public String UploadPicture(MultipartFile file, String userpath) {
        String result="";
        if(!file.isEmpty()) {
            System.out.println("文件不空");
            // 获取文件名称,包含后缀
            String fileName = file.getOriginalFilename();

            //判断是否是图片
            if(!fileName.matches("^.*(png|jpg|gif|jpge)$")){
                //不是图片类型
                return "http://localhost:8080/error.png";
            }

            // 存放在这个路径下：该路径是该工程目录下的static文件下：(注：该文件可能需要自己创建)
            // 放在static下的原因是，存放的是静态文件资源，即通过浏览器输入本地服务器地址，加文件名时是可以访问到的
            //String path = ClassUtils.getDefaultClassLoader().getResource("static").getPath()+"/";
            //String path = "C:\\Users\\Administrator\\Desktop\\apache-tomcat-8.5.58\\webapps\\photos\\";
            //path=path+userpath+"/";
            String path = "";
            path = GetServerRealPathUnit.getPath("photos");
            path=path+userpath+"\\";
            System.out.println("图片存放路径："+path);
            try {
                // 该方法是对文件写入的封装，在util类中，导入该包即可使用，后面会给出方法
                FileUtil.fileupload(file.getBytes(), path, fileName);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //result = "http://47.93.37.84:8080/"+userpath+"/"+fileName;
            result = "http://localhost:8080/photos/"+userpath+"/"+fileName;
        }
        return result;
    }

    @Override
    public String uploadExcel(MultipartFile file, String userpath) {
        String result="";
        if(!file.isEmpty()) {
            System.out.println("文件不空");
            // 获取文件名称,包含后缀
            String fileName = file.getOriginalFilename();
            // 存放在这个路径下：该路径是该工程目录下的static文件下：(注：该文件可能需要自己创建)
            // 放在static下的原因是，存放的是静态文件资源，即通过浏览器输入本地服务器地址，加文件名时是可以访问到的
            //String path = ClassUtils.getDefaultClassLoader().getResource("static").getPath()+"/";
            //String path = "C:\\Users\\Administrator\\Desktop\\apache-tomcat-8.5.58\\webapps\\photos";
            String path = "";
            path = GetServerRealPathUnit.getPath("excels");
            path=path+userpath+"\\";
            System.out.println("文件存放路径："+path);
            try {
                // 该方法是对文件写入的封装，在util类中，导入该包即可使用
                FileUtil.fileupload(file.getBytes(), path, fileName);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            result = "http://localhost:8080/excels/"+userpath+"/"+fileName;
        }
        return result;
    }
}
